from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware

import qwen

app = FastAPI()

# 配置允许的源列表，* 表示允许所有源
origins = [
    "http://127.0.0.1:5173",
    "http://localhost:8000",
    "http://localhost:3000",  # 前端应用可能运行的端口
    "*"  # 生产环境中不建议使用通配符，应指定具体的源
]

# 添加 CORS 中间件
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # 允许的源
    allow_credentials=True,  # 允许携带凭证（如 cookies）
    allow_methods=["*"],  # 允许的 HTTP 方法，* 表示允许所有
    allow_headers=["*"],  # 允许的 HTTP 头部，* 表示允许所有
)

# 测试连通性：GET 请求
@app.get("/")
async def root():
    return qwen.get_result("你好")
    #return {"message": "Hello, FastAPI!"}

# 处理聊天请求：POST 请求
@app.post("/chat")
async def chat(request: Request):
    # 读取原始字节数据
    raw_data = await request.body()
    
    try:
        # 先尝试 UTF-8 解码
        message = raw_data.decode("utf-8")
    except UnicodeDecodeError:
        # 失败则尝试 GBK 解码（适用于中文环境）
        message = raw_data.decode("gbk")
    return qwen.get_result(message).encode("utf-8")
    #return "# 标题 - 内容1 \n\n ## 内容2 \n\n ### 内容3 \n\n #### 内容4 \n\n ##### 内容5 \n\n ###### 内容6 \n\n ### 结尾内容".encode("utf-8")